<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/8/28 0028
 * Time: 下午 1:58
 */
namespace app\api\controller;
use app\admin\Model\Collect;
use app\admin\model\Discount;
use app\admin\model\Mydiscount;
use app\admin\Model\User as Usermodel;
use think\Db;
use think\Hook;

class User extends Baseapi{
    /**
     * @return \think\response\Jsonp
     * @throws \think\Exception
     * @throws \think\exception\DbException
     *   * 用户注册信息
     */
    public function register(){
        $data['username']=input('phone');
        $code=input('code');
        if($code){
            if(input('phone')){
                $result=Usermodel::get(['username'=>input('phone')]);
                if(!$result){
                    $data['refree_id']=input('refreeid');
                    $data['user_avator']='avator.png';
                    $data['addtime']=time();
                    $lastid = Db::name('user')->insertGetId($data);
                    if($lastid){
                        $this->registuserdiscount($lastid);
                        $info['status']=1;
                        $info['info']='注册成功！';
                    }else{
                        $info['info']='数据异常，请稍后再尝试操作！';
                    }
                }else{
                    $info['info']='该账户已存在，请直接去登录！';
                }
            }else{
                $info['info']='请填写账号！';
            }
        }else{
            $info['info']='请输入验证码！';
        }
        return jsonp($info);
    }
    /**
     * @return \think\response\Jsonp
     * @throws \think\exception\DbException
     * 用户登录
     */
    public function login(){
        $type=input('type');
        $phone=input('phone');
        $password=input('password');
        $code=input('code');
        switch ($type){
            case 1://手机验证码登录
                if($phone && $code){
                    $res=Usermodel::get(['username'=>$phone]);
                    if($res['user_status']==1){
                        $info['status']=1;
                        $info['info']='手机验证登录成功';
                    }else if($res['user_status']==2){
                        $info['info']='该用户已被拉黑,请联系管理处理！';
                    }else{
                        $info['info']='该手机号不存在！';
                    }
                }else{
                    $info['info']='手机号或验证码不能为空！';
                }
                break;
            case 2://账号密码登录
                if($phone && $password){
                    $res=Usermodel::get(['username'=>$phone,'password'=>$password]);
                    if($res['user_status']==1){
                        $info['status']=1;
                        $info['info']='手机验证登录成功';
                    }else if($res['user_status']==2){
                        $info['info']='该用户已被拉黑,请联系管理处理！';
                    }else{
                        $info['info']='账号或密码错误！';
                    }
                }else{
                    $info['info']='手机号或密码不能为空！';
                }
                break;
        }
        return jsonp($info);
    }
    /**
     * @return \think\response\Jsonp
     * @throws \think\exception\DbException
     * 用户修改密码
     */
    public function changepassword (){
        $phone=input('phone');
        $password=input('password');
        $code=input('code');
        //差一步验证 验证码功能！
        if($code){
            if($phone && $password){
                $res=Usermodel::get(['username'=>$phone]);
                if($res){
                    $res->password = md5($password);
                    $result=$res->save();
                    if($result){
                        $info['status']=1;
                        $info['info']='密码重置成功！';
                    }else{
                        $info['info']='密码与原密码一致！';
                    }
                }else{
                    $info['info']='该用户不存在,请输入正确账号！';
                }
            }else{
                $info['info']='手机号或密码不能为空！';
            }
        }else{
            $info['info']='请输入正确验证码！';
        }

         return jsonp($info);
    }
    /**
     * @param $userid
     * 新用户添加新用户优惠券
     */
    protected function registuserdiscount($userid){
        $data['user_id']=$userid;
        $data['discount_id']=1;
        $data['use_status']=1;
        $data['addtime']=time();
        Db::name('mydiscount')->insert($data);
    }

    /**
     * $userid  用户id
     * $usestatus  优惠券状态
     * @return \think\response\Jsonp
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     * 获取用户优惠券
     */
    public function getmydiscount(){
        $where['user_id']=input('userid');
        if(input('usestatus')){
            $where['use_status']=input('usestatus');
        }
        $page=input('page')?input('page'):1;
        $alias=['ec_mydiscount'=>'a','ec_discount'=>'b'];//定义表的别名
        $join=[['ec_discount','a.discount_id=b.id']];//定义表的关联字段
        $lists= Db::name('mydiscount')
            ->alias($alias)
            ->join($join)
            ->page($page,15)
            ->where($where)
            ->order('addtime desc')
             ->field('a.*,b.name,b.price,b.starttime,b.endtime')
            ->select();
        foreach ($lists as $k=>$v){
         $lists[$k]['starttime']=date('Y-m-d',$v['starttime']);
         $lists[$k]['endtime']=date('Y-m-d',$v['endtime']);
        }
        if(count($lists)>0){
            $info['list']=$lists;
            $info['status']=1;
        }else{
            $info['list']='暂无优惠券，赶快去领取首页领取！';
      }

     return jsonp($info);
 }
    /**
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     * 领红包列表
     */
    public function getdiscountlists(){
        Hook::listen('editdiscount',$params);
        $discount_id=[];
        $where['user_id']=input('userid')?input('userid'):14;
        $where['use_status']=1;
        $lists=Mydiscount::where($where)->field('discount_id')->select();
        foreach ($lists as $k=>$v){
            $discount_id[]=$v->discount_id;
        }
        $dislist=collection(Discount::where('d_status',1)->field('id,name,num,sup_num,starttime')->select())->toArray();
        foreach ($dislist as $k=>$v){
            if(in_array($v['id'],$discount_id)){
                $dislist[$k]['receive']=1;
            }else{
                $dislist[$k]['receive']=0;
            }
        }
        return jsonp($dislist);
    }
    /**
     * @return \think\response\Jsonp
     * @throws \think\Exception
     * @throws \think\exception\DbException
     * 用户抢红包
     */
    public function adduserdiscount(){
         $data['user_id']=input('userid');//用户id
         $data['discount_id']=input('discountid');//红包id
         $Mydiscount=new Mydiscount();
         $infos=Discount::get(input('discountid'))->toArray();//获取红包信息
         $mydiscount=Mydiscount::get($data);
        if(input('userid') && input('discountid')){
            if(!$mydiscount){
                if($infos['sup_num'] >0  &&  time()<=$infos['endtime']){
                    $data['addtime']=time();//分类id
                    $res=$Mydiscount->save($data);
                    if($res){
                        Discount::where('id',input('discountid'))->setDec('num');//抢成功优惠券数量减1
                        $info['status']=1;
                        $info['info']='红包到手,请去账户中查看！';
                    }else{
                        $info['info']='数据异常,请在抢一次！';
                    }
                }else{
                    $info['info']='红包数量不足,或者红包已过期失效！';
                }
            }else{
                $info['info']='红包已经领取过了,不能重复领取！';
            }
        }else{
            $info['info']='参数不正确请，检查';
        }
        return jsonp($info);
    }
    /**
     * @return \think\response\Jsonp
     * @throws \think\exception\DbException
     *用户收藏店铺和商品接口
     */
    public function  addcollect(){
        $data['user_id']=input('userid');//用户id
        $data['type']=input('type');//类型
        if(input('type')==1){
             $msg='店铺收藏成功！';
             $errormsg='您已经收藏过此店铺';
             $data['shop_id']=input('id');//商户id
        }else{
            $msg='商品收藏成功！';
            $data['goods_id']=input('id');//商品id
            $errormsg='您已经收藏过此商品';
        }
       $result= Collect::get($data);
        if(!$result){
            $data['c_addtime']=time();
            $res=Collect::create($data,true)->toArray();
            if($res['id']){
                $info['status']=1;
                $info['info']=$msg;
            }else{
                $info['info']='数据异常,请稍后再进行！';
            }
        }else{
            $info['info']=$errormsg;
        }
        return jsonp($info);
    }
}